บทที่ 4 การเชื่อมต่ออุปกรณ์ต่อพ่วง


General Purpose Input/Output Interface (GPIO)

ESP8266EX มี 17 GPIO pins ซึ่งสามารถกำหนดให้กับฟังก์ชันต่างๆได้โดยการเขียนโปรแกรมการลงทะเบียนที่เหมาะสม

GPIO แต่ละตัวสามารถกำหนดค่าด้วยการ pull-up หรือ pull-down หรือกำหนดค่าความต้านทานสูงและเมื่อกำหนดค่าเป็นอินพุต ข้อมูลจะถูกเก็บไว้ใน software registers อินพุทยังสามารถตั้งค่าให้เป็น edge-trigger หรือ level trigger CPU interrupts ในระยะสั้น IO pads เป็นแบบ bidirectional, non-inverting และ tristate ซึ่งประกอบด้วยบัฟเฟอร์อินพุตและเอาท์พุต กับ tristate
control inputs

Pin เหล่านี้สามารถ multiplexed กับฟังก์ชันอื่น ๆ เช่น I2C, I2S, UART, PWM, IR Remote Control, LED Light และปุ่มเป็นต้น

สำหรับการใช้พลังงานต่ำ GPIO ยังสามารถตั้งค่าให้อยู่ในสถานะของตัวมันเองได้อีกด้วย ตัวอย่างเช่นเมื่อชิปปิด สัญญาณเอาต์พุตทั้งหมดสามารถตั้งค่าไว้ที่ระดับต่ำ

เมื่อ IO ไม่ได้รับการขับเคลื่อนด้วยวงจรภายในหรือภายนอก ฟังก์ชั่นการถือครองสามารถใช้เพื่อเก็บสถานะไปยังสถานะที่ใช้ครั้งล่าสุด

Secure Digital Input/Output Interface (SDIO)

ESP8266EX มี SDIO Slave หนึ่งชุด

Pin Name Pin Num I/O Function Name
SDIO_CLK 21 IO6 SDIO_CLK
SDIO_DATA0 22 IO7 SDIO_DATA0
SDIO_DATA1 23 IO8 SDIO_DATA1
SDIO_DATA_2 18 IO9 SDIO_DATA_2
SDIO_DATA_3 19 IO10 SDIO_DATA_3
SDIO_CMD 20 IO11 SDIO_CMD

หมายเหตุ

สนับสนุน 4-bit 25 MHz SDIO v1.1 และ 4-bit 50 MHz SDIO v2.0

Serial Peripheral Interface (SPI/HSPI)

ESP8266EX มี SPI 3 ตัว

  • One general Slave/Master SPI
  • One Slave SDIO/SPI
  • One general Slave/Master HSPI

ฟังก์ชั่นของ pin ทั้งหมดนี้สามารถใช้งานได้ผ่านทางฮาร์ดแวร์ คำอธิบาย pin จะอธิบายไว้ด้านล่าง

General SPI (Master/Slave)
Pin Name Pin Num I/O Function Name
SDIO_CLK 21 IO6 SPICLK
SDIO_DATA0 22 IO7 SPIQ/MISO
SDIO_DATA1 23 IO8 SPID/MOSI
SDIO_DATA2 18 IO9 SPIHD
SDIO_DATA3 19 IO10 SPIWP
U0TXD 26 IO1 SPICS1
GPIO0 15 IO0 SPICS2

หมายเหตุ

SPI mode สามารถใช้งานได้ผ่านการเขียนโปรแกรมซอฟต์แวร์ ความถี่นาฬิกาสูงสุดคือ 80 MHz

HSPI (Slave)
Pin Name Pin Num I/O Function Name
MTMS 9 IO14 HSPICLK
MTDI 10 IO12 HSPIQ/MISO
MTCK 12 IO13 HSPID/MOSI
MTDO 13 IO15 HPSICS

การเชื่อมต่อ I2C

ESP8266EX มีหนึ่ง I2C ใช้เพื่อเชื่อมต่อกับไมโครคอนโทรลเลอร์และอุปกรณ์ต่อพ่วงอื่น ๆ เช่นเซ็นเซอร์

Pin Name Pin Num I/O Function Name
MTMS 9 IO14 I2C_SCL
GPIO2 14 IO2 I2C_SDA

รองรับ I2C Master และ I2C Slave ฟังก์ชันการทำงานของการเชื่อมต่อ I2C สามารถรับรู้ได้ผ่านการเขียนโปรแกรมซอฟต์แวร์และความถี่นาฬิกาสูงสุดเท่ากับ 100 kHz ควรสังเกตว่าความถี่ I2C ควรจะสูงกว่าความถี่นาฬิกาที่ช้าที่สุดของอุปกรณ์ slave

การเชื่อมต่อ I2S

ESP8266EX มีหนึ่งการเชื่อมต่อข้อมูลอินพุต I2S และหนึ่งการเชื่อมต่อข้อมูลเอาท์พุต I2S การเชื่อมต่อ I2S ส่วนใหญ่จะใช้ในแอพพลิเคชันเช่นการรวบรวมข้อมูล, การประมวลผล, และการส่งผ่านข้อมูลเสียง รวมทั้งการป้อนข้อมูลและการส่งข้อมูลอนุกรม ตัวอย่างเช่นไฟ LED (WS2812 series) ก็ได้รับการสนับสนุน I2S สามารถใช้งานได้ผ่านการเขียนโปรแกรมซอฟต์แวร์โดยใช้ GPIO แบบมัลติเพล็กซ์และสนับสนุน DMA ที่เชื่อมโยงกัน

Pin Name Pin Num I/O Function Name
MTDI 10 IO12 I2SI_DATA
MTCK 12 IO13 I2SI_BCK
MTMS 9 IO14 I2SI_WS
MTDO 13 IO15 I2SO_BCK
U0RXD 25 IO3 I2SO_DATA
GPIO2 14 IO2 I2SO_WS

Universal Asynchronous Receiver Transmitter (UART)

ESP8266EX มี 2 UART คือ UART0 และ UART

Pin Type Pin Name Pin Num I/O Function Name
UART0 U0RXD 25 IO3 U0RXD
U0TXD 26 IO1 U0TXD
MTDO 13 IO15 U0RTS
MTCK 12 IO13 U0CTS
UART1 GPIO2 14 IO2 U1TXD
SD_D1 23 IO8 U1RXD

การโอนย้ายข้อมูลไปยัง/จาก UART สามารถทำได้ผ่านทางฮาร์ดแวร์ ความเร็วในการรับส่งข้อมูลผ่านอินเทอร์เฟซ UART อยู่ที่ 115200 x 40 (4.5 Mbps)

UART0 สามารถใช้สำหรับการสื่อสารได้ รองรับ fluid control เนื่องจาก UART1 มีเฉพาะสัญญาณส่งข้อมูล (Tx) จึงมักใช้สำหรับบันทึก log

หมายเหตุ

ตามค่าเริ่มต้น UART0 จะพิมพ์ข้อมูลที่พิมพ์ออกมาบางส่วนเมื่ออุปกรณ์เปิดอยู่และบูตเครื่อง อัตราการส่งข้อมูลของข้อมูลที่พิมพ์มีความสัมพันธ์กับความถี่ของ crystal oscillator ภายนอก ถ้าความถี่ของ oscillator ผลึกเป็น 40 MHz แล้วอัตรา baud สำหรับการพิมพ์เป็น 115200; ถ้าความถี่ของ crystal oscillator คือ 26 MHz อัตราการส่งสำหรับการพิมพ์คือ 74880 ถ้าข้อมูลที่พิมพ์มีอิทธิพลต่อการทำงานของอุปกรณ์แนะนำให้ปิดกั้นการพิมพ์ระหว่างช่วงเปิดเครื่องด้วยการเปลี่ยน ( U0TXD, U0RXD) ถึง (MTDO, MTCK)

Pulse-Width Modulation (PWM)

ESP8266EX มีเอาท์พุท PWM เอาไว้สี่ชุด

Pin Name Pin Num I/O Function Name
MTDI 10 IO12 PWM0
MTDO 13 IO15 PWM1
MTMS 9 IO14 PWM2
GPIO4 16 IO4 PWM3

ฟังก์ชันการทำงานของการเชื่อมต่อ PWM สามารถใช้งานได้ผ่านการเขียนโปรแกรมซอฟต์แวร์ ตัวอย่างเช่นในการสาธิต LED smart light ฟังก์ชั่นของ PWM จะเกิดขึ้นโดยการหยุดชะงักของตัวจับเวลาความละเอียดต่ำสุดถึงสูงถึง 44 ns ช่วงความถี่ของ PWM สามารถปรับได้จาก 1000 μsถึง 10000 μs ได้แก่ 100 Hz และ 1 kHz เมื่อความถี่ PWM คือ 1 kHz อัตราส่วนของงานจะเท่ากับ 1/22727 และความละเอียดมากกว่า 14 บิตจะได้อัตรารีเฟรช 1 kHz

IR Remote Control

Pin Name Pin Num I/O Function Name
MTMS 9 IO14 IR Tx
GPIO5 24 IO5 IR Tr

ฟังก์ชันอินเทอร์เฟซการควบคุมระยะไกลอินฟาเรดสามารถใช้งานได้ผ่านการเขียนโปรแกรมซอฟต์แวร์NEC coding, modulation, และ demodulation ใช้โดยการเชื่อมต่อนี้ ความถี่ของสัญญาณของผู้ให้บริการปรับเป็น 38 kHz ขณะที่อัตราการทำงานของคลื่นสี่เหลี่ยมคือ 1/3 ช่วงการรับส่งข้อมูลอยู่ที่ประมาณ 1 เมตรซึ่งขึ้นอยู่กับปัจจัยสองประการคือค่าหนึ่งคือค่าสูงสุดของกระแสไฟฟ้าที่ได้รับการจัดอันดับและอีกค่าหนึ่งคือค่าความต้านทานภายในของตัวรับสัญญาณอินฟราเรด ยิ่งค่าต้านทานสูงเท่าใดกระแสไฟฟ้าที่ต่ำลงจะทำให้กำลังไฟฟ้าลดลงและในทางกลับกัน มุมการรับส่งอยู่ระหว่าง 15 °ถึง 30 °ซึ่งขึ้นอยู่กับทิศทางการรับรังสีของตัวรับสัญญาณอินฟราเรด

ADC (Analog-to-Digital Converter)

Pin Name Pin Num Function Name
TOUT 6 ADC Interface

สามารถใช้ฟังก์ชันสองอย่างต่อไปนี้ได้โดยใช้ ADC (Pin 6) อย่างไรก็ตามไม่สามารถใช้งานได้ในเวลาเดียวกัน

  • ทดสอบแรงดันไฟฟ้าของ VDD3P3 (Pin 3 และ Pin 4)
Hardware Design TOUT must be floating.
RF Initialization Parameter The 107th byte of esp_init_data_default.bin(0 ~ 127 bytes), vdd33_const must be set to 0xFF.
RF Calibration Process Optimize the RF circuit conditions based on the testing results of VDD3P3(Pin 3 and Pin 4).
User Programming Use system_get_vdd33 instead of system_adc_read.
  • ทดสอบแรงดันไฟฟ้าขาเข้าของ TOUT (Pin 6)
Hardware Design The input voltage range is 0 to 1.0V when TOUT is connected to external circuit.
RF Initialization Parameter The value of the 107th byte of esp_init_data_default.bin(0 ~ 127 bytes), vdd33_const must be set to the real power supply voltage of Pin 3 and Pin 4.The working power voltage range of ESP8266EX is between 1.8V and 3.6V, while the unit of vdd33_const is 0.1V, therefore, the effective value range of vdd33_const is 18 to 36.
RF Calibration Process Optimize the RF circuit conditions based on the value of vdd33_const.The permissible error is ±0.2V.
User Programming Use system_adc_read instead of system_get_vdd33.

ไฟ LED และปุ่ม

ESP8266EX 17 GPIOs ซึ่งทั้งหมดสามารถกำหนดให้รองรับฟังก์ชั่นต่างๆของไฟ LED และปุ่มต่างๆได้ นิยามของ GPIO บางตัวที่กำหนดให้กับฟังก์ชันบางอย่างในการออกแบบแอ็พพลิเคชันสาธิตจะแสดงไว้ด้านล่าง

Pin Name Pin Num I/O Function Name
MTCK 12 IO13 Button(Reset)
GPIO0 15 IO0 Wi-Fi Light
MTDI 10 IO12 Link Light

มีการกำหนดการเชื่อมต่อทั้งหมดสามแบบ หนึ่งสำหรับปุ่ม ในขณะที่อีก 2 แบบสำหรับไฟ LED โดยทั่วไป MTCK ใช้สำหรับควบคุมปุ่มรีเซ็ต GPIO0 ใช้เป็นสัญญาณเพื่อระบุสถานะการทำงานของ Wi-Fi ส่วน MTDI ใช้เป็นสัญญาณเพื่อบ่งบอกถึงสถานะการสื่อสารระหว่างอุปกรณ์และเซิร์ฟเวอร์

หมายเหตุ

การเชื่อมต่อส่วนใหญ่ที่อธิบายไว้ในบทนี้สามารถมัลติเพล็กซ์ได้ การกำหนด Pin ที่สามารถกำหนดได้ไม่จำกัดเฉพาะคำจำกัดความที่ระบุในที่นี้ คุณสามารถปรับแต่งการทำงานของ pin ได้ตามสถานการณ์การใช้งานเฉพาะของคุณผ่านการเขียนโปรแกรมซอฟต์แวร์และการออกแบบฮาร์ดแวร์

results matching ""

    No results matching ""